porting to rust